/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista;

import Controladores.GestionAlquiler;
import Controladores.GestionPromociones;
import Controladores.GestionEmpleado;
import Controladores.GestionTarifa;
import Controladores.GestionArticulo;
import Controladores.GestionCliente;
import Controladores.GestionSaldo;
import Controladores.GestionProveedor;
import Controladores.GestionMovimientos;
import Controladores.GestionCompra;
import java.util.*;
import negocio.*;
import persistencia.PersistenciaPromocion;

/**
 *
 * @author JAVA
 */
public class Tienda {

    public static void login() {
        boolean valido = false;
        do {
            System.out.println("--------------------------");
            System.out.println("          LOGIN           ");
            System.out.println("--------------------------");
            String nom = ObtenerTeclado.dameCadena("Introduzca el nombre de usuario: ");
            int pass = ObtenerTeclado.dameEntero("Introduzca el pin");
            Empleado e = GestionEmpleado.login(nom, pass);
            if (e != null) {
                valido = true;
                if (e.getTipo().compareTo("Dependiente") == 0) {
                    menuPrincipalDependiente(e);
                } else if (e.getTipo().compareTo("Encargado") == 0) {
                    menuPrincipalEncargado(e);
                }
            } else {
                System.out.println("El usuario introducido no existe");
            }
        } while (!valido);
    }

    public static void menuPrincipalDependiente(Empleado d) {
        int i = 1;

        do {
            System.out.println("--------------------------");
            System.out.println("      MENU DEPENDIENTE    ");
            System.out.println("--------------------------");
            System.out.println("1. Alquiler Pelicula o Juego");
            System.out.println("2. Compra");
            System.out.println("3. Devolucion");
            System.out.println("4. Promociones");
            System.out.println("5. Alta/Baja de articulos");
            System.out.println("6. Alta/Baja de clientes");
            System.out.println("7. Mostrar/Modificar informacion de clientes");
            System.out.println("8. Saldo");
            System.out.println("9. Tarifas");
            System.out.println("10. Informes");
            System.out.println("11. Incidencias");
            System.out.println("0. Salir");

            i = ObtenerTeclado.dameEntero("Introduzca una opcion: ");
            //provisional hasta que pueda buscar en la persistencia un client epor su nif
            Cliente cl = null;
            switch (i) {

                case 1:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuAlquiler(cl, d);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 2:
                    menuCompra(d);
                    break;
                case 3:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuDevolucion(cl);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 4:
                    menuPromociones();
                    break;

                case 5:
                    menuArticulos();
                    break;
                case 6:
                    menuAltaBajaCliente();
                    break;
                case 7:
                    menuInfoCliente();
                    break;
                case 8:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuSaldo(cl);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 9:

                    menuTarifa();
                    break;
                case 10:
                   // menuInformes();
                    break;
                case 11:
                    menuIncidencias(d);
                    break;
                default:

                    break;
            }

        } while (i != 0);

    }

    public static void menuPrincipalEncargado(Empleado e) {

        int i = 1;

        do {
            System.out.println("--------------------------");
            System.out.println("       MENU ENCARGADO     ");
            System.out.println("--------------------------");
            System.out.println("1. Alquiler Pelicula o Juego");
            System.out.println("2. Compra");
            System.out.println("3. Devolucion");
            System.out.println("4. Promociones");
            System.out.println("5. Alta/Baja de articulos");
            System.out.println("6. Alta/Baja de clientes");
            System.out.println("7. Alta/Baja de proveedores");
            System.out.println("8. Alta/Baja de empleados");
            System.out.println("9. Alta/Baja de encargados");
            System.out.println("10. Mostrar/Modificar informacion de clientes");
            System.out.println("11. Saldo");
            System.out.println("12. Tarifas");
            System.out.println("13. Informes");
            System.out.println("14. Incidencias");
            System.out.println("0. Salir");

            i = ObtenerTeclado.dameEntero("Introduzca una opcion: ");
            //provisional hasta que pueda buscar en la persistencia un client epor su nif
            Cliente cl = null;
            switch (i) {

                case 1:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuAlquiler(cl, e);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 2:
                    menuCompra(e);
                    break;
                case 3:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuDevolucion(cl);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 4:
                    menuPromociones();
                    break;

                case 5:
                    menuArticulos();
                    break;
                case 6:
                    menuAltaBajaCliente();
                    break;
                case 7:
                    menuProveedor();
                    break;
                case 8:
                    menuEmpleados();
                    break;
                case 9:
                    menuEncargado();
                    break;
                case 10:
                    menuInfoCliente();
                    break;
                case 11:
                    cl = menuInfoCliente2();
                    if (cl != null) {
                        System.out.println(cl.toString());
                        menuSaldo(cl);
                    } else {
                        System.out.println("No ha elegido ningun cliente");
                    }
                    break;
                case 12:
                    menuTarifa();
                    break;
                case 13:
                   // menuInformes();
                    break;
                case 14:
                    menuIncidencias(e);
                    break;
                default:

                    break;
            }

        } while (i != 0);

    }

    private static void menuAlquiler(Cliente cliente, Empleado dependiente) {
        
        Alquiler alq=GestionAlquiler.creaAlquiler(cliente);
        int i = 1;
        int s = 0;
        do {

            System.out.println("--------------------------");
            System.out.println("      MENU ALQUILER    ");
            System.out.println("--------------------------");
            System.out.println("1. Buscar pelicula");
            System.out.println("2. Buscar juego");
            System.out.println("3. Mostrar articulos del CARRITO");
            System.out.println("4. Eliminar articulo del CARRITO");
            System.out.println("5. Confirmar alquileres");
            System.out.println("6. Mostrar promociones");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca una opcion");

            switch (i) {
                case 0:

                    s = ObtenerTeclado.dameEntero("Seguro que desea salir? 1. Si Cualquier otro numero. No");
                    if (s == 1) {
                        GestionAlquiler.salirSinConfirmar(alq);
                        break;
                    } else {
                        i = ObtenerTeclado.dameEntero("Introduzca una opción");
                        break;
                    }
                case 1:
                    submenuBusquedaPelicula(alq);
                    break;
                case 2:
                    submenuBusquedaJuego(alq);
                    break;
                case 3:
                    //Vamos a recorrer la lista de alquileres para ver los articulos que ha seleccionado
                    GestionAlquiler.mostrarArticulosSeleccionados(alq);
                    break;
                case 4:
                    int codigo = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo a eliminar");
                    GestionAlquiler.EliminarAlquiler(alq, codigo);
                    break;
                case 5:
                    GestionAlquiler.confirmar(cliente, alq, dependiente);
                    break;
                case 6:
                    GestionPromociones.mostrarPromocionesVigentes();
                    break;
                default:

                    break;
            }

        } while (i != 0);
    }

    private static void submenuBusquedaPelicula(Alquiler alq) {
        int i = 1;
        do {
            System.out.println("---------------------------");
            System.out.println("      BUSQUEDA PELICULA    ");
            System.out.println("---------------------------");
            System.out.println("1. Mostrar novedades");
            System.out.println("2. Mostrar peliculas mejor valoradas");
            System.out.println("3. Busqueda por titulo");
            System.out.println("4. Busqueda por genero");
            System.out.println("5. Busqueda por año");
            System.out.println("6. Busqueda por director");
            System.out.println("7. Seleccionar pelicula");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca una opcion: ");

            switch (i) {
                case 1:
                    GestionAlquiler.mostrarNovedades();
                    break;
                case 2:
                    GestionAlquiler.mostrarMejoresPeliculas();
                    break;
                case 3:
                    String titulo = ObtenerTeclado.dameCadena("Introduzca el titulo buscado");
                    GestionAlquiler.busquedaPeliculaTitulo(titulo);
                    break;
                case 4:
                    String genero;
                    GestionArticulo.mostrarGeneros();
                    do {
                        genero = ObtenerTeclado.dameCadena("Introduzca el genero buscado: ");
                    } while (GestionArticulo.comprobarGenero(genero) != 1);
                    GestionAlquiler.busquedaJuegoGenero(genero);
                    break;
                case 5:
                    int anyo = ObtenerTeclado.dameAno("Introduzca el año buscado");
                    GestionAlquiler.busquedaAnyo(anyo);
                    break;
                case 6:
                    String director = ObtenerTeclado.dameCadena("Introduzca el director buscado");
                    GestionAlquiler.busquedaDirector(director);
                    break;
                case 7:
                    int cod = ObtenerTeclado.dameEntero("Introduzca el codigo de la pelicula seleccionada");
                    GestionAlquiler.AddAlquiler(alq, cod);
                    //Salgo del submenu al menu de alquiler de pelicula
                    i = 0;
                    break;
                default:

                    break;
            }
        } while (i != 0);

    }

    private static void submenuBusquedaJuego(Alquiler alq) {

        int i = 1;
        do {
            System.out.println("---------------------------");
            System.out.println("        BUSQUEDA JUEGO    ");
            System.out.println("---------------------------");
            System.out.println("1. Mostrar juegos mejor valorados");
            System.out.println("2. Busqueda por titulo");
            System.out.println("3. Busqueda por genero");
            System.out.println("4. Busqueda por soporte");
            System.out.println("5. Seleccionar juego");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca una opcion");

            switch (i) {

                case 1:
                    GestionAlquiler.mostrarMejoresJuegos();
                    break;

                case 2:
                    String titulo = ObtenerTeclado.dameCadena("Introduzca el titulo buscado");
                    GestionAlquiler.busquedaJuegoTitulo(titulo);
                    break;

                case 3:
                    String genero;
                    GestionArticulo.mostrarGeneros();
                    do {
                        genero = ObtenerTeclado.dameCadena("Introduzca el genero buscado: ");
                    } while (GestionArticulo.comprobarGenero(genero) != 1);
                    GestionAlquiler.busquedaJuegoGenero(genero);
                    break;

                case 4:
                    String soporte;
                    GestionArticulo.mostrarSoportes();
                    do {
                        soporte = ObtenerTeclado.dameCadena("Introduzca la plataforma buscada");
                    } while (GestionArticulo.comprobarSoporte(soporte) != 1);
                    GestionAlquiler.busquedaJuegoSoporte(soporte);
                    break;

                case 5:
                    int codigo = ObtenerTeclado.dameEntero("Introduzca el codigo del juego para alquilar");
                    GestionAlquiler.AddAlquiler(alq, codigo);
                    break;

                default:

                    break;
            }

        } while (i != 0);
    }

    private static void menuDevolucion(Cliente cliente) {
        int i = 1;
        Alquiler alq=GestionAlquiler.obtenerAlquiler(cliente);
        do {
            System.out.println("---------------------------");
            System.out.println("          DEVOLUCION       ");
            System.out.println("---------------------------");
            System.out.println("1. Mostrar peliculas pendientes");
            System.out.println("2. Devolver pelicula seleccionada");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca una opcion");

            switch (i) {
                case 1:
                    GestionAlquiler.mostrarArticulosPendientes(alq);
                    break;
                case 2:
                    int cod = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo");
                    GestionAlquiler.devolverArticulo(alq, cod);
                    
                    break;
                default:
                    break;
            }
        } while (i != 0);
    }

    public static void menuPromociones() {
        int j = 1;
        int k = 0;
        int i;
        int opc = 0;
        String tipoG;
        String tipoS;
        String descripcion;
        float porcentaje;
        int dias;
        Date fechaInicio = null;
        Date fechaFin = null;
        Tipo tipo = null;
        String descripcionTipo = null;

        do {
            System.out.println("---------------------------");
            System.out.println("        PROMOCIONES    ");
            System.out.println("---------------------------");
            System.out.println("1. Añadir Promocion");
            System.out.println("2. Borrar Promocion");
            System.out.println("3. Ver Promociones");
            System.out.println("4. Modificar una Promocion");
            System.out.println("5. Activar una Promocion");
            System.out.println("6. Informar a los clientes de las promociones vigentes");
            System.out.println("0. Salir");
            j = ObtenerTeclado.dameEntero("Introduzca una opcion:");

            switch (j) {

                case 1:
                    //Añadir promocion
                    System.out.println("---------------------------");
                    System.out.println("      AÑADIR PROMOCION    ");
                    System.out.println("---------------------------");
                    descripcion = ObtenerTeclado.dameCadena("Introduzca una descripcion de la promocion: ");
                    porcentaje = ObtenerTeclado.dameFloat("Introduzca un porcentaje de descuento (SIN EL SIMBOLO %): ");
                    dias = ObtenerTeclado.dameEntero("Introduzca un numero de dias extras para la promocion: ");
                    fechaInicio = ObtenerTeclado.dameFecha("Introduzca la fecha de inicio de la promocion-- Formato dd-mm-yyyy: ");
                    fechaFin = ObtenerTeclado.dameFecha("Introduzca la fecha de finalizacion de la promocion-- Formato dd-mm-yyyy");
                    //Muestra los tipos y un numero asociado para su introduccion por teclado


                    do {
                        Tipo t[] = Tipo.values();
                        for (i = 0; i < t.length; i++) {
                            System.out.println(" Numero: " + t[i].muestraMensaje() + " Tipo: " + t[i].name());
                        }

                        opc = ObtenerTeclado.dameEntero("Introduzca el numero del tipo de promocion");
                        switch (opc) {

                            case 1:
                                tipo = tipo.Genero;
                                GestionArticulo.mostrarGeneros();
                                do {
                                    descripcionTipo = ObtenerTeclado.dameCadena("Introduzca un genero de la lista anterior: ");
                                } while (GestionArticulo.comprobarGenero(descripcionTipo) != 1);
                                break;

                            case 2:
                                tipo = tipo.Año;
                                break;

                            case 3:
                                tipo = tipo.Soporte;
                                GestionArticulo.mostrarSoportes();
                                do {
                                    descripcionTipo = ObtenerTeclado.dameCadena("Introduzca un soporte de la lista anterior: ");
                                } while (GestionArticulo.comprobarSoporte(descripcionTipo) != 1);
                                break;

                            case 4:

                                tipo = tipo.Director;
                                break;

                            case 5:
                                tipo = tipo.Dias;
                                descripcionTipo = ObtenerTeclado.dameCadena("Introduce el dia de la semana de la promocion: ");
                                break;

                            default:
                                opc = 0;
                                break;
                        }
                    } while (opc == 0);

                    GestionPromociones.addPromocion(descripcion, porcentaje, dias, fechaInicio, fechaFin, tipo, descripcionTipo);
                    break;


                case 2:
                    System.out.println("---------------------------");
                    System.out.println("      ELIMINAR PROMOCION    ");
                    System.out.println("---------------------------");
                    GestionPromociones.mostrarPromociones();
                    int codigo = ObtenerTeclado.dameEntero("Introduzca el codigo de la promocion a eliminar");
                    System.out.println("¿Seguro que desea la promocion con el id: " + codigo + "?");
                    System.out.println("1. Si");
                    System.out.println("2. No");
                    System.out.println("Por defecto: promocion no borrada");
                    int s = ObtenerTeclado.dameEntero("Introduzca opcion");
                    switch (s) {
                        case 1:
                            GestionPromociones.borrarPromocion(codigo);
                            break;
                        case 2:
                            System.out.println("Promocion no borrada");
                            break;
                        default:
                            System.out.println("Promocion no borrada");
                            break;
                    }
                    break;
                case 3:
                    System.out.println("---------------------------");
                    System.out.println("    MOSTRAR PROMOCIONES    ");
                    System.out.println("---------------------------");
                    GestionPromociones.mostrarPromocionesVigentes();
                    break;

                case 4:
                    System.out.println("---------------------------");
                    System.out.println("    MODIFICAR PROMOCIONES  ");
                    System.out.println("---------------------------");
                    GestionPromociones.mostrarPromociones();
                    codigo = ObtenerTeclado.dameEntero("Introduzca la promocion a modificar");
                    System.out.println("1. Modificar descripcion");
                    System.out.println("2. Modificar porcentaje");
                    System.out.println("3. Modificar dias extras");
                    System.out.println("4. Modificar fecha de fin");
                    System.out.println("5. Modificar tipo");
                    System.out.println("6. Modificar fecha de inicio");
                    System.out.println("0. Salir");
                    int op = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");
                    java.text.SimpleDateFormat sdf=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");                           
                    

                    switch (op) {
                        case 1:
                            String valor = ObtenerTeclado.dameCadena("Introduzca el nuevo valor");
                            GestionPromociones.modificarPromocion(codigo, "descripcion", valor);
                            break;
                        case 2:
                            valor = ObtenerTeclado.dameCadena("Introduzca el nuevo valor");
                            GestionPromociones.modificarPromocion(codigo, "porcentaje", valor);
                            break;
                        case 3:
                            valor = ObtenerTeclado.dameCadena("Introduzca el nuevo valor");
                            GestionPromociones.modificarPromocion(codigo, "dias", valor);
                            break;
                        case 4:
                            Date fin = ObtenerTeclado.dameFecha("Introduzca la nueva fecha de fin en formato dd-mm-yyyy");
                            valor = sdf.format(fin);
                            GestionPromociones.modificarPromocion(codigo, "fechaFin", valor);
                            break;
                        case 5:
                            //Muestra los tipos y un numero asociado para su introduccion por teclado
                            Tipo ti[] = Tipo.values();
                            for (i = 0; i < ti.length; i++) {
                                System.out.println("Tipo: " + ti[i].name() + " Numero: " + ti[i].muestraMensaje());
                            }
                            opc = ObtenerTeclado.dameEntero("Introduzca el numero del tipo de promocion");

                            switch (opc) {

                                case 1:

                                    valor = "Genero";
                                    break;

                                case 2:

                                    valor = "Año";
                                    break;

                                case 3:

                                    valor = "Soporte";
                                    break;

                                case 4:

                                    valor = "Director";
                                    break;

                                default:
                                    valor = null;
                                    break;
                            }
                            GestionPromociones.modificarPromocion(codigo, "tipo", valor);
                            break;

                        case 6:
                            Date inicio = ObtenerTeclado.dameFecha("Introduzca la nueva fecha de inicio en formato dd-mm-yyyy");
                            valor = sdf.format(inicio);
                            GestionPromociones.modificarPromocion(codigo, "fechaFin", valor);
                            break;
                        default:
                            break;


                    }

                    break;

                case 5:
                    GestionPromociones.mostrarPromocionesInactivas();
                    int codp = ObtenerTeclado.dameEntero("Introduzca el codigo de la promocion a reactivar");
                    GestionPromociones.reactivarPromocion(codp);
                    break;
                case 6:
                    GestionPromociones.informarPromociones();
                    break;
                default:
                    break;
            }

        } while (j != 0);
    }

    public static void menuAltaBajaCliente() {
        int j = 1;
        do {
            System.out.println("-------------------------------");
            System.out.println("    MENU ALTA/BAJA CLIENTES    ");
            System.out.println("-------------------------------");
            System.out.println("1. Dar de Alta a un Cliente");
            System.out.println("2. Dar de Baja a un Cliente");
            System.out.println("0. Salir");
            j = ObtenerTeclado.dameEntero("Selecciona la opcion: ");


            switch (j) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("           ALTA CLIENTE        ");
                    System.out.println("-------------------------------");
                    System.out.println(" ------ Menú Alta de Cliente ------ ");
                    System.out.println("");
                    String nombre = ObtenerTeclado.dameCadena("Introduce el Nombre: ");
                    String apellido = ObtenerTeclado.dameCadena("Introduce el Apellido: ");
                    String dni = ObtenerTeclado.dameCadena("Introduce el Dni: ");
                    String direccion = ObtenerTeclado.dameCadena("Introduce la Direccion: ");
                    String correo = ObtenerTeclado.dameCadena("Introduce el Correo: ");
                    String tlf = ObtenerTeclado.dameCadena("Introduce el nº de Telefono: ");
                    String apodo = ObtenerTeclado.dameCadena("Introduce el Nombre de Usuario: ");
                    String pin = ObtenerTeclado.dameCadena("Introduce el Pin del Cliente");
                    String cadena=nombre+"/"+apellido+"/"+dni+"/"+direccion+"/"+correo+"/"+tlf+"/"+apodo+"/"+pin;
                    GestionCliente.altaCliente(cadena);
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("           BAJA CLIENTE        ");
                    System.out.println("-------------------------------");
                    System.out.println("Menú Información Cliente----------------");
                    System.out.println("");
                    System.out.println("Busqueda por Criterio");
                    System.out.println("");
                    System.out.println("1. Buscar por Nombre");
                    System.out.println("2. Buscar por Apellido");
                    System.out.println("3. Buscar por Dni");
                    System.out.println("4. Busqueda por Pin");
                    System.out.println("5. Busqueda por Nombre de Usuario");
                    System.out.println("0. Salir");
                    j = ObtenerTeclado.dameEntero("Selecciona la opcion: ");


                    System.out.println(" ");
                    String s = "";
                    switch (j) {
                        case 1:
                            //método para seleccionar un cliente por el nombre
                            s = ObtenerTeclado.dameCadena("Introduce el Nombre para la Búsqueda: ");
                            break;
                        case 2:
                            //método para seleccionar un cliente por el apellido
                            s = ObtenerTeclado.dameCadena("Introduce los Apellidos para la Búsqueda: ");
                            break;
                        case 3:
                            //método para seleccionar un cliente por el dni
                            s = ObtenerTeclado.dameCadena("Introduce el Dni para la Búsqueda: ");
                            break;
                        case 4:
                            //método para seleccionar un cliente por el pin de usuario
                            s = ObtenerTeclado.dameCadena("Introduce el Pin para la Búsqueda: ");
                            break;
                        case 5:
                            //método para seleccionar un cliente por el nombre de usuario
                            s = ObtenerTeclado.dameCadena("Introduce el Nombre de Usuario para la Búsqueda: ");
                            break;

                        default:

                            break;
                    }
                    ArrayList<Cliente> listaClientes = GestionCliente.buscaClientes(j, s);
                    if (listaClientes.isEmpty()) {
                        System.out.println("No existe ningún Socion con esos Datos!!");
                    } else {
                        j = ObtenerTeclado.dameEntero("Introduce el Id del Cliente para Continuar ó Introduce 0 para Salir");
                        Cliente c = GestionCliente.seleccionaCliente(listaClientes, j);
                        GestionCliente.bajaCliente(c);
                    }
                    break;
                case 0:
                    j = 0;
                    break;
                default:
                    break;
            }
        } while (j != 0);
    }

    /*
     * Obtiene un Cliente de la Base de Datos y lo Devuelve, Incluye interfaz
     */
    public static Cliente menuInfoCliente2() {
        int j = 1;
        Cliente c = null;
        String o = "";
        do {
            System.out.println("-------------------------------");
            System.out.println("       INFORMACION CLIENTE     ");
            System.out.println("-------------------------------");
            System.out.println("");
            System.out.println("Busqueda por Criterio");
            System.out.println("");
            System.out.println("1. Buscar por Nombre");
            System.out.println("2. Buscar por Apellido");
            System.out.println("3. Buscar por Dni");
            System.out.println("4. Busqueda por id");
            System.out.println("5. Busqueda por Nombre de Usuario");
            System.out.println("0. Salir");
            o = ObtenerTeclado.dameCadena("Selecciona la opcion: ");
        } while (!"1".equals(o) && !"2".equals(o) && !"3".equals(o) && !"4".equals(o) && !"5".equals(o) && !"0".equals(o));
        if (!o.equals("0")) {
            System.out.println(" ");
            String s = "";
            j = Integer.parseInt(o);
            switch (j) {
                case 1:
                    //método para seleccionar un cliente por el nombre
                    s = ObtenerTeclado.dameCadena("Introduce el Nombre para la Búsqueda: ");
                    break;
                case 2:
                    //método para seleccionar un cliente por el apellido
                    s = ObtenerTeclado.dameCadena("Introduce los Apellidos para la Búsqueda: ");
                    break;
                case 3:
                    //método para seleccionar un cliente por el dni
                    s = ObtenerTeclado.dameCadena("Introduce el Dni para la Búsqueda: ");
                    break;
                case 4:
                    //método para seleccionar un cliente por el pin de usuario
                    s = ObtenerTeclado.dameCadena("Introduce el id para la Búsqueda: ");
                    break;
                case 5:
                    //método para seleccionar un cliente por el nombre de usuario
                    s = ObtenerTeclado.dameCadena("Introduce el Nombre de Usuario para la Búsqueda: ");
                    break;

                default:

                    break;
            }
            ArrayList<Cliente> listaClientes = GestionCliente.buscaClientes(j, s);
            if (listaClientes.isEmpty()) {
                System.out.println("No existe ningún Socio con esos Datos!!");
            } else {
                j = ObtenerTeclado.dameEntero("Introduce el Id del Cliente para Continuar ó Introduce 0 para Salir");
                c = GestionCliente.seleccionaCliente(listaClientes, j);
            }
        }
        return c;
    }
    
    public static void menuInfoCliente() {

        int j = 1;
        //do {
        System.out.println("-------------------------------");
        System.out.println("        BUSQUEDA CLIENTE       ");
        System.out.println("-------------------------------");
        System.out.println("Menú Información Cliente----------------");
        System.out.println("");
        System.out.println("Busqueda por Criterio");
        do {
            System.out.println("");
            System.out.println("1. Buscar por Nombre");
            System.out.println("2. Buscar por Apellido");
            System.out.println("3. Buscar por Dni");
            System.out.println("4. Busqueda por Id");
            System.out.println("5. Busqueda por Nombre de Usuario");
            System.out.println("0. Salir");
            j = ObtenerTeclado.dameEntero("Selecciona la opcion: ");


            System.out.println(" ");
            String s = "";
            switch (j) {
                case 1:
                    //método para seleccionar un cliente por el nombre
                    s = ObtenerTeclado.dameCadena("Introduce el Nombre para la Búsqueda: ");
                    break;
                case 2:
                    //método para seleccionar un cliente por el apellido
                    s = ObtenerTeclado.dameCadena("Introduce los Apellidos para la Búsqueda: ");
                    break;
                case 3:
                    //método para seleccionar un cliente por el dni
                    s = ObtenerTeclado.dameCadena("Introduce el Dni para la Búsqueda: ");
                    break;
                case 4:
                    //método para seleccionar un cliente por el pin de usuario
                    s = ObtenerTeclado.dameCadena("Introduce el Id para la Búsqueda: ");
                    break;
                case 5:
                    //método para seleccionar un cliente por el nombre de usuario
                    s = ObtenerTeclado.dameCadena("Introduce el Nombre de Usuario para la Búsqueda: ");
                    break;

                default:

                    break;
            }
            ArrayList<Cliente> listaClientes = GestionCliente.buscaClientes(j, s);
            if (listaClientes.isEmpty()) {
                System.out.println("No existe ningún Socion con esos Datos!!");
            } else {
                j = ObtenerTeclado.dameEntero("Introduce el Id del Cliente para Continuar ó Introduce 0 para Salir");
                if (j != 0) {
                    Cliente c = GestionCliente.seleccionaCliente(listaClientes, j);
                    do {
                        System.out.println("----------------------");
                        System.out.println("");
                        System.out.println("1. Mostrar Datos");
                        System.out.println("2. Modificar el Saldo");
                        System.out.println("3. Modificar Otros Campos");
                        System.out.println("4. Mostrar Movimientos");
                        System.out.println("0. Salir");
                        System.out.println("");
                        j = ObtenerTeclado.dameEntero("Selecciona una Opcion: ");
                        switch (j) {
                            case 1:
                                /*
                                System.out.println("-------------------------------");
                                System.out.println("      MOSTRAR DATOS CLIENTE     ");
                                System.out.println("-------------------------------");
                                List<Alquiler> lista=GestionCliente.mostrarDatosCliente(c);
                                
                                if(!lista.isEmpty()){
                                    String opc="";
                                    do {
                                        opc = ObtenerTeclado.dameCadena("Quieres ver los Alquileres Pendientes?? Si(1),No(0)");
                                    } while (!opc.equals("1") && !opc.equals("0"));
                                    if(opc.equals("1")){GestionAlquiler.mostrarAlquileresPendientes(c);}
                                }
                                */
                                break;
                            case 2:
                                System.out.println("-------------------------------");
                                System.out.println("       SALDO CLIENTE     ");
                                System.out.println("-------------------------------");
                                System.out.println("El Saldo actual del Cliente es: " + c.getSaldo());
                                float f = ObtenerTeclado.dameFloat("Introduce la Cantidad para Incrementar o Disminuir el Saldo:");
                                GestionCliente.modificarSaldoCliente(c,f);
                                break;
                            case 3:
                                int k = 1;
                                do {
                                    System.out.println("-------------------------------");
                                    System.out.println("       MODIFICAR CLIENTE     ");
                                    System.out.println("-------------------------------");
                                    System.out.println("1. Modificar Nombre");
                                    System.out.println("2. Modificar Apellidos");
                                    System.out.println("3. Modificar Dni");
                                    System.out.println("4. Modificar Domicilio");
                                    System.out.println("5. Modificar Teléfono");
                                    System.out.println("6. Modificar E-mail");
                                    System.out.println("7. Modificar Vip, No Vip");
                                    System.out.println("8. Modificar Nombre de Usuario");
                                    System.out.println("9. Modificar Pin");
                                    System.out.println("0. Salir");
                                    System.out.println(" ");
                                    k = ObtenerTeclado.dameEntero("Selecciona la Opcion: ");
                                    switch (k) {
                                        case 1:
                                            System.out.println(" ");
                                            System.out.println("  Nombre Actual: " + c.getNombre());
                                            String nombre = ObtenerTeclado.dameCadena("  Introduce el Nombre nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(1, c, nombre);
                                            break;
                                        case 2:
                                            System.out.println(" ");
                                            System.out.println("  Apellidos Actuales: " + c.getApellidos());
                                            String apellidos = ObtenerTeclado.dameCadena("  Introduce los Apellidos nuevos: ");
                                            GestionCliente.modificarOtrosDatosCliente(2, c, apellidos);
                                            break;
                                        case 3:
                                            System.out.println(" ");
                                            System.out.println("  Dni Actual: " + c.getDni());
                                            String dni = ObtenerTeclado.dameCadena("  Introduce el Dni nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(3, c, dni);
                                            break;
                                        case 4:
                                            System.out.println(" ");
                                            System.out.println("  Domicilio Actual: " + c.getDomicilio());
                                            String domicilio = ObtenerTeclado.dameCadena("  Introduce el Domicilio nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(4, c, domicilio);
                                            break;
                                        case 5:
                                            System.out.println(" ");
                                            System.out.println("  Teléfono Actual: " + c.getTelefono());
                                            String telefono = ObtenerTeclado.dameCadena("  Introduce el Teléfono nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(5, c, telefono);
                                            break;
                                        case 6:
                                            System.out.println(" ");
                                            System.out.println("  E-mail Actual: " + c.getEmail());
                                            String email = ObtenerTeclado.dameCadena("  Introduce el E-Mail nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(6, c, email);
                                            break;
                                        case 7:
                                            System.out.println(" ");
                                            if (c.isVip()) {
                                                System.out.println("  El Cliente es Vip");
                                            } else {
                                                System.out.println("  El Cliente No es Vip");
                                            }
                                            String v ="";
                                            do {
                                                v = ObtenerTeclado.dameCadena("  Introduce nuevo Estado. ¿Vip? Si(1)/No(0)");
                                            } while (!v.equals("1") && !v.equals("0"));
                                            GestionCliente.modificarOtrosDatosCliente(7,c,v);
                                            break;
                                        case 8:
                                            System.out.println(" ");
                                            System.out.println("  Nombre de Usuario Actual: " + c.getNomUsuario());
                                            String nomUsuario = ObtenerTeclado.dameCadena("  Introduce el Nombre de Usuario nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(8, c, nomUsuario);
                                            break;
                                        case 9:
                                            System.out.println(" ");
                                            System.out.println("  Pin Actual: " + c.getPin());
                                            String pin = ObtenerTeclado.dameCadena("  Introduce el Pin nuevo: ");
                                            GestionCliente.modificarOtrosDatosCliente(9, c, pin);
                                            break;
                                        default:
                                            break;
                                    }
                                } while (k != 0);
                                break;
                            case 4:
                                System.out.println("-------------------------------");
                                System.out.println("      MOSTRAR MOVIMIENTOS      ");
                                System.out.println("-------------------------------");
//                                GestionInformes.listaMovimientos(c);
                                break;
                            default:

                                break;
                        }
                    } while (j != 0);
                }
            }
        } while (j != 0);
    }

    private static void menuCompra(Empleado e) {

        int j = 1;
        int codarticulo;
        String resp;
        Cliente cliente=menuInfoCliente2();
        Articulo articulo;
        String confirmacion;

        Compra compra = new Compra(new Date(), cliente);

        do {
            System.out.println("-------------------------------");
            System.out.println("            MENU COMPRA        ");
            System.out.println("-------------------------------");
            System.out.println("1. Añadir articulo");
            System.out.println("2. Borrar articulo");
            System.out.println("3. Ver listado");
            System.out.println("4. Confirmar Compra");
            System.out.println("5. Cancelar Compra");
            System.out.println("0. Salir");
            j = ObtenerTeclado.dameEntero("Introduzca una opcion: ");

            switch (j) {

                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("          AÑADIR ARTICULO      ");
                    System.out.println("-------------------------------");
                    if (GestionArticulo.mostrarArticulosSeVenden() == 0) {


                        System.out.println("NO HAY ARTICULOS DISPONIBLES");
                        j = 0;
                        break;

                    }

                    codarticulo = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo, de la lista anterior: ");
                    GestionCompra.añadirArticulo(codarticulo, compra);
                    break;

                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("         ELIMINAR ARTICULO     ");
                    System.out.println("-------------------------------");
                    codarticulo = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo a borrar de la lista");
                    confirmacion = ObtenerTeclado.dameCadena("¿Esta seguro que desea eliminar el articulo" + codarticulo + "? (SI/NO)");

                    if (confirmacion.equals("SI") || confirmacion.equals("si")) {
                        GestionCompra.borrarArticulo(codarticulo, compra);
                    }
                    break;

                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("              VER LISTA         ");
                    System.out.println("-------------------------------");
                    GestionCompra.verLista(compra);
                    break;

                case 4:
                    System.out.println("-------------------------------");
                    System.out.println("         CONFIRMACION COMPRA   ");
                    System.out.println("-------------------------------");
                    GestionCompra.confirmacion(e, compra);
                    j = 0;
                    break;

                case 5:
                    System.out.println("-------------------------------");
                    System.out.println("         CANCELAR COMPRA       ");
                    System.out.println("-------------------------------");
                    resp = ObtenerTeclado.dameCadena("¿Seguro que desea cancelar la compra? (SI/NO)");
                    if (resp.compareTo("SI") == 0 || resp.compareTo("si") == 0) {
                        GestionCompra.deshacerCompra(compra);
                    } else {
                        break;
                    }
                    j = 0;
                    break;


                default:

                    break;

            }

        } while (j != 0);

    }

    public static void menuArticulos() {
        int i;
        int tar = 0;
        int prov = 0;
        String nomprov;
        String genero;
        String soporte;
        boolean venta = false;
        do {
            System.out.println("-------------------------------");
            System.out.println("          MENU ARTICULOS       ");
            System.out.println("-------------------------------");
            System.out.println("1. Alta de articulo");
            System.out.println("2. Baja de articulo");
            System.out.println("3. Ver Articulos");
            System.out.println("4. Modificar Articulos");
            System.out.println("5. Soportes");
            System.out.println("6. Generos");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");

            switch (i) {
                case 1:
                    int op = 1;

                    do {

                        System.out.println("-------------------------------");
                        System.out.println("          ALTA ARTICULOS       ");
                        System.out.println("-------------------------------");
                        System.out.println("1. Alta de juego");
                        System.out.println("2. Alta de pelicula");
                        System.out.println("3. Otro articulo");
                        op = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");

                    } while (op < 1 && op > 3);

                    if (op == 1 || op == 2) {

                        int venta1 = ObtenerTeclado.dameEntero("Introduzca 1 si el articulo es para la venta \n "
                                + "Introduzca 0 si el articulo es solo para alquilar");
                        //Si introduce mal el numero por defecto es 0
                        if (venta1 != 0 || venta1 != 1) {
                            venta1 = 0;
                            if (venta1 == 1) {
                                venta = true;
                            } else {
                                venta = false;
                            }
                        }
                    }

                    //Para dar de alta un articulo hace falta tanto un proveedor como una tarifa
                    //Si no hay proveedor o tarifa no puedo dar de alta el articulo



                    int numProv = GestionProveedor.mostrarProveedores();
                    //Si existe algun proveedor
                    if (numProv > 0) {

                        prov = ObtenerTeclado.dameEntero("Introduzca el codigo del proveedor \n SI DESEA AÑADIR UN NUEVO PROVEEDOR INTRODUZA 0 \n Al añadir un nuevo proveedor volvera al menu principal de alta/baja Articulos");

                        if (prov == 0) {
                            nomprov = ObtenerTeclado.dameCadena("Introduzca el nombre del proveedor: ");
                            break;
                        }

                        int numTar = GestionTarifa.mostrarTarifas();
                        //Si existe alguna tarifa
                        if (numTar > 0) {
                            tar = ObtenerTeclado.dameEntero("Introduzca su codigo \n SI DESEA AÑADIR UNA NUEVA TARIFA INTRODUZA 0 \n Al añadir un nuevo proveedor volvera al menu principal de alta/baja Articulos ");

                            if (tar == 0) {
                                String desc = ObtenerTeclado.dameCadena("Introduzca la descripcion: ");
                                Float pA = ObtenerTeclado.dameFloat("Introduzca el precio de alquiler: ");
                                Float pV = ObtenerTeclado.dameFloat("Introduzca el precio de venta: ");
                                int dias = ObtenerTeclado.dameEntero("Introduzca los dias que permite de alquiler la tarifa: ");
                                GestionTarifa.addTarifa(desc, pA, pV, dias);
                                break;
                            }

                        } else if (tar == 0) {
                            System.out.println("Debe dar de alta una tarifa primero");
                            String desc = ObtenerTeclado.dameCadena("Introduzca la descripcion: ");
                            Float pA = ObtenerTeclado.dameFloat("Introduzca el precio de alquiler: ");
                            Float pV = ObtenerTeclado.dameFloat("Introduzca el precio de venta: ");
                            int dias = ObtenerTeclado.dameEntero("Introduzca los dias que permite de alquiler la tarifa: ");
                            GestionTarifa.addTarifa(desc, pA, pV, dias);
                            break;
                        }
                    } else if (prov == 0) {
                        System.out.println("Debe dar de alta un proveedor primero");
                        nomprov = ObtenerTeclado.dameCadena("Introduzca el nombre del proveedor: ");
                        GestionProveedor.altaProveedor(nomprov);
                        break;
                    }

                    switch (op) {
                        case 1:
                            System.out.println("-------------------------------");
                            System.out.println("            ALTA JUEGO         ");
                            System.out.println("-------------------------------");
                            String titulo = ObtenerTeclado.dameCadena("Introduzca el titulo");

                            GestionArticulo.mostrarSoportes();

                            do {
                                soporte = ObtenerTeclado.dameCadena("Introduzca el soporte: ");
                            } while (GestionArticulo.comprobarSoporte(soporte) != 1);

                            GestionArticulo.mostrarGeneros();

                            do {
                                genero = ObtenerTeclado.dameCadena("Introduzca el genero: ");
                            } while (GestionArticulo.comprobarGenero(genero) != 1);

                            int edadM = ObtenerTeclado.dameEntero("Introduzca la edad minima");
                            GestionArticulo.altaJuego(prov, tar, titulo, soporte, genero, edadM, venta);
                            break;
                        case 2:
                            System.out.println("-------------------------------");
                            System.out.println("          ALTA PELICULA       ");
                            System.out.println("-------------------------------");
                            titulo = ObtenerTeclado.dameCadena("Introduzca el titulo");

                            GestionArticulo.mostrarGeneros();

                            do {
                                genero = ObtenerTeclado.dameCadena("Introduzca el genero: ");
                            } while (GestionArticulo.comprobarGenero(genero) != 1);
                            String director = ObtenerTeclado.dameCadena("Introduzca el director");
                            int ano = ObtenerTeclado.dameAno("Introduzca el año");
                            int duracion = ObtenerTeclado.dameEntero("Introduzca duracion en minutos");
                            String actores = ObtenerTeclado.dameCadena("Introduzca los actores separados por comas");
                            edadM = ObtenerTeclado.dameEntero("Introduzca la edad minima");
                            GestionArticulo.altaPelicula(prov, tar, titulo, genero, director, ano, duracion, actores, edadM, venta);
                            break;
                        case 3:
                            System.out.println("-------------------------------");
                            System.out.println("          ALTA ARTICULOS       ");
                            System.out.println("-------------------------------");
                            titulo = ObtenerTeclado.dameCadena("Introduzca el nombre del articulo");
                            GestionArticulo.altaArtVenta(prov, tar, titulo);
                            break;

                        default:
                            break;
                    }

                    break;
                case 2:
                    int opc = 1;
                    do {
                        System.out.println("-------------------------------");
                        System.out.println("         ELIMINAR ARTICULO      ");
                        System.out.println("-------------------------------");
                        System.out.println("1. Eliminar Pelicula");
                        System.out.println("2. Eliminar Juego");
                        System.out.println("3. Eliminar Atriculo de Venta");
                        System.out.println("0. Salir");
                        opc = ObtenerTeclado.dameEntero("Introduzca la opcion deseada: ");

                        switch (opc) {

                            case 1:
                                GestionArticulo.mostrarPeliculas();
                                System.out.println("-------------------------------");
                                System.out.println("         ELIMINAR PELICULA      ");
                                System.out.println("-------------------------------");
                                int cod = ObtenerTeclado.dameEntero("Introduzca el codigo de la pelicula a eliminar");
                                System.out.println("¿Seguro que desea borrar la pelicula con codigo " + cod + "?");
                                System.out.println("1. Si");
                                System.out.println("2. No");
                                int s = ObtenerTeclado.dameEntero("Introduzca opcion");
                                switch (s) {
                                    case 1:
                                        GestionArticulo.borrarArticulo(cod);
                                        break;
                                    case 2:
                                        System.out.println("Articulo no borrado");
                                        break;
                                    default:
                                        break;
                                }
                                break;

                            case 2:
                                System.out.println("-------------------------------");
                                System.out.println("          ELIMINAR JUEGO       ");
                                System.out.println("-------------------------------");
                                GestionArticulo.mostrarJuegos();

                                cod = ObtenerTeclado.dameEntero("Introduzca el codigo del juego a eliminar");
                                System.out.println("¿Seguro que desea borrar el juego con codigo " + cod + "?");
                                System.out.println("1. Si");
                                System.out.println("2. No");
                                s = ObtenerTeclado.dameEntero("Introduzca opcion");
                                switch (s) {
                                    case 1:
                                        GestionArticulo.borrarArticulo(cod);
                                        break;
                                    case 2:
                                        System.out.println("Articulo no borrado");
                                        break;
                                    default:
                                        break;
                                }
                                break;

                            case 3:
                                System.out.println("-------------------------------");
                                System.out.println("         ELIMINAR ARTICULO      ");
                                System.out.println("-------------------------------");
                                GestionArticulo.mostrarArticuloVenta();
                                cod = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo a eliminar");
                                System.out.println("¿Seguro que desea borrar el articulo con codigo " + cod + "?");
                                System.out.println("1. Si");
                                System.out.println("2. No");
                                s = ObtenerTeclado.dameEntero("Introduzca opcion");
                                switch (s) {
                                    case 1:
                                        GestionArticulo.borrarArticulo(cod);
                                        break;
                                    case 2:
                                        System.out.println("Articulo no borrado");
                                        break;
                                    default:
                                        System.out.println("Articulo no borrado");
                                        break;
                                }
                                break;

                            default:
                                break;

                        }
                    } while (opc != 0);
                    break;

                case 3:

                    opc = 1;
                    do {
                        System.out.println("-------------------------------");
                        System.out.println("         MOSTRAR ARTICULOS      ");
                        System.out.println("-------------------------------");
                        System.out.println("1. Mostrar Juegos");
                        System.out.println("2. Mostrar Peliculas");
                        System.out.println("3. Mostrar Atriculos de Venta");
                        opc = ObtenerTeclado.dameEntero("Introduzca la opcion deseada: ");

                        switch (opc) {

                            case 1:
                                System.out.println("-------------------------------");
                                System.out.println("           MOSTRAR JUEGOS      ");
                                System.out.println("-------------------------------");
                                GestionArticulo.mostrarJuegos();
                                break;

                            case 2:
                                System.out.println("-------------------------------");
                                System.out.println("          MOSTRAR PELICULA      ");
                                System.out.println("-------------------------------");
                                GestionArticulo.mostrarPeliculas();
                                break;

                            case 3:
                                System.out.println("-------------------------------");
                                System.out.println("   MOSTRAR ARTICULOS DE VENTAS  ");
                                System.out.println("-------------------------------");
                                GestionArticulo.mostrarArticuloVenta();
                                break;
                            default:
                                break;
                        }

                    } while (opc < 1 || opc > 3);
                    break;

                case 4:
                    opc = 0;
                    int cod;
                    String valor;
                    System.out.println("---------------------------------");
                    System.out.println("         MODIFICAR ARTICULOS      ");
                    System.out.println("---------------------------------");
                    System.out.println("1. Modificar Juegos");
                    System.out.println("2. Modificar Peliculas");
                    System.out.println("3. Modificar Atriculos de Venta");
                    opc = ObtenerTeclado.dameEntero("Introduzca la opcion deseada: ");

                    switch (opc) {

                        case 1:
                            System.out.println("-------------------------------");
                            System.out.println("           MODIFICAR JUEGOS      ");
                            System.out.println("-------------------------------");
                            GestionArticulo.mostrarJuegos();
                            cod = ObtenerTeclado.dameEntero("Introduzca el codigo del juego a modificar: ");
                            System.out.println("1. Modificar Proveedor asociado al juego");
                            System.out.println("2. Modificar Disponibilidad");
                            System.out.println("3. Modificar Tarifa asociada al juego");
                            System.out.println("4. Modificar Titulo del juego");
                            System.out.println("5. Modificar Edad minima del juego");
                            System.out.println("6. Modificar Soporte asociado al juego");
                            System.out.println("7. Modificar Genero asociado al juego");
                            System.out.println("8. Modificar Valoracion del juego");
                            System.out.println("9. Modificar si el producto es para Venta o Alquiler");
                            int opcm = ObtenerTeclado.dameEntero("Introduzca la opcion que desee modificar:");

                            switch (opcm) {
                                case 1:
                                    GestionProveedor.mostrarProveedores();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo del proveedor que desea asociar al juego:");
                                    GestionArticulo.modificarArticulo(cod, "idproveedor", valor);
                                    break;
                                case 2:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva disponibilidad del juego (0=No disponible/ 1= Disponible):");
                                    GestionArticulo.modificarArticulo(cod, "disponible", valor);
                                    break;
                                case 3:
                                    GestionTarifa.mostrarTarifas();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo de la tarifa que desea asociar al juego:");
                                    GestionArticulo.modificarArticulo(cod, "idtarifa", valor);
                                    break;
                                case 4:
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nuevo titulo del juego:");
                                    GestionArticulo.modificarArticulo(cod, "titulo", valor);
                                    break;
                                case 5:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva Edad minima al juego:");
                                    GestionArticulo.modificarArticulo(cod, "edadMinima", valor);
                                    break;
                                case 6:
                                    GestionArticulo.mostrarSoportes();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el soporte que desea asociar al juego:");
                                    GestionArticulo.modificarArticulo(cod, "soporte", valor);
                                    break;
                                case 7:
                                    GestionArticulo.mostrarGeneros();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el genero que desea asociar al juego:");
                                    GestionArticulo.modificarArticulo(cod, "genero", valor);
                                    break;
                                case 8:
                                    valor = ObtenerTeclado.dameCadena("Introduzca una nueva valoracion al juego:");
                                    GestionArticulo.modificarArticulo(cod, "valoracion", valor);
                                    break;
                                case 9:
                                    valor = ObtenerTeclado.dameCadena("Introduzca un 1 si desea vender el juego \n introduzca un 0 para alquilar");
                                    GestionArticulo.modificarArticulo(cod, "sevende", valor);
                                    break;
                                default:
                                    break;
                            }
                            break;
                        case 2:
                            System.out.println("-------------------------------");
                            System.out.println("          MODIFICAR PELICULA      ");
                            System.out.println("-------------------------------");
                            GestionArticulo.mostrarPeliculas();
                            cod = ObtenerTeclado.dameEntero("Introduzca el codigo de la pelicula a modificar: ");
                            System.out.println("1. Modificar Proveedor asociado a la pelicula");
                            System.out.println("2. Modificar Disponibilidad");
                            System.out.println("3. Modificar Tarifa asociada a la pelicula");
                            System.out.println("4. Modificar Titulo del juego");
                            System.out.println("5. Modificar Edad minima de la pelicula");
                            System.out.println("6. Modificar Soporte asociado a la pelicula");
                            System.out.println("7. Modificar Genero asociado a la pelicula");
                            System.out.println("8. Modificar Valoracion de la pelicula");
                            System.out.println("9. Modificar si el producto es para Venta o Alquiler");
                            System.out.println("10. Modificar el año de la pelicula");
                            System.out.println("11. Modificar la duracion de la pelicula");
                            System.out.println("12. Modificar los actores de la pelicula");
                            System.out.println("13. Modificar el director de la pelicula");
                            int opcm2 = ObtenerTeclado.dameEntero("Introduzca la opcion que desee modificar:");
                            switch (opcm2) {

                                case 1:
                                    GestionProveedor.mostrarProveedores();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo del proveedor que desea asociar a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "idproveedor", valor);
                                    break;
                                case 2:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva disponibilidad de la pelicula (0=No disponible/ 1= Disponible):");
                                    GestionArticulo.modificarArticulo(cod, "disponible", valor);
                                    break;
                                case 3:
                                    GestionTarifa.mostrarTarifas();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo de la tarifa que desea asociar a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "idtarifa", valor);
                                    break;
                                case 4:
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nuevo titulo de la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "titulo", valor);
                                    break;
                                case 5:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva Edad minima a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "edadMinima", valor);
                                    break;
                                case 6:
                                    GestionArticulo.mostrarSoportes();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el soporte que desea asociar a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "soporte", valor);
                                    break;
                                case 7:
                                    GestionArticulo.mostrarGeneros();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el genero que desea asociar a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "genero", valor);
                                    break;
                                case 8:
                                    valor = ObtenerTeclado.dameCadena("Introduzca una nueva valoracion a la pelicula:");
                                    GestionArticulo.modificarArticulo(cod, "valoracion", valor);
                                    break;
                                case 9:
                                    valor = ObtenerTeclado.dameCadena("Introduzca un 1 si desea vender la pelicula \n introduzca un 0 para alquilar");
                                    GestionArticulo.modificarArticulo(cod, "sevende", valor);
                                    break;
                                case 10:
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nuevo año de la pelicula");
                                    GestionArticulo.modificarArticulo(cod, "ano", valor);
                                    break;
                                case 11:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva duracion de la pelicula");
                                    GestionArticulo.modificarArticulo(cod, "duracion", valor);
                                    break;
                                case 12:
                                    valor = ObtenerTeclado.dameCadena("Introduzca los nuevos actores de la pelicula");
                                    GestionArticulo.modificarArticulo(cod, "actores", valor);
                                    break;
                                case 13:
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nuevo director de la pelicula");
                                    GestionArticulo.modificarArticulo(cod, "director", valor);
                                    break;
                                default:
                                    break;
                            }
                            break;

                        case 3:
                            System.out.println("-------------------------------");
                            System.out.println("   MODIFICAR ARTICULOS DE VENTAS  ");
                            System.out.println("-------------------------------");
                            GestionArticulo.mostrarArticuloVenta();
                            cod = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo a modificar: ");
                            cod = ObtenerTeclado.dameEntero("Introduzca el codigo del articulo a modificar: ");
                            System.out.println("1. Modificar Proveedor asociado al articulo de venta");
                            System.out.println("2. Modificar Disponibilidad");
                            System.out.println("3. Modificar Tarifa asociada al articulo");
                            System.out.println("4. Modificar Titulo del articulo de venta");
                            int opcm3 = ObtenerTeclado.dameEntero("Introduzca la opcion que desee modificar:");

                            switch (opcm3) {
                                case 1:
                                    GestionProveedor.mostrarProveedores();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo del proveedor que desea asociar al articulo:");
                                    GestionArticulo.modificarArticulo(cod, "idproveedor", valor);
                                    break;
                                case 2:
                                    valor = ObtenerTeclado.dameCadena("Introduzca la nueva disponibilidad del articulo (0=No disponible/ 1= Disponible):");
                                    GestionArticulo.modificarArticulo(cod, "disponible", valor);
                                    break;
                                case 3:
                                    GestionTarifa.mostrarTarifas();
                                    valor = ObtenerTeclado.dameCadena("Introduzca el codigo de la tarifa que desea asociar al articulo:");
                                    GestionArticulo.modificarArticulo(cod, "idtarifa", valor);
                                    break;
                                case 4:
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nuevo titulo del articulo:");
                                    GestionArticulo.modificarArticulo(cod, "titulo", valor);
                                    break;
                            }

                            break;
                        default:
                            break;
                    }
                    break;

                case 5:
                    String soporte1;

                    System.out.println("1. Mostrar Soportes");
                    System.out.println("2. Añadir Soportes");
                    System.out.println("3. Modificar Soportes");
                    System.out.println("0. Salir");
                    int opc1 = ObtenerTeclado.dameEntero("Introduzca una opcion:");

                    switch (opc1) {
                        case 1:
                            GestionArticulo.mostrarSoportes();
                            break;
                        case 2:
                            soporte1 = ObtenerTeclado.dameCadena("Introduzca el nombre del nuevo soporte: ");
                            GestionArticulo.addSoporte(soporte1);
                            break;
                        case 3:
                            GestionArticulo.mostrarSoportes();
                            do {
                                soporte1 = ObtenerTeclado.dameCadena("Introduzca el soporte a modificar: ");
                            } while (GestionArticulo.comprobarSoporte(soporte1) != 1);
                            String soporte2 = ObtenerTeclado.dameCadena("Introduzca el nuevo genero");
                            GestionArticulo.modificarSoporte(soporte1, soporte2);
                            break;
                        default:
                            break;
                    }
                    break;

                case 6:
                    String genero1;

                    System.out.println("1. Mostrar Generos");
                    System.out.println("2. Añadir Generos");
                    System.out.println("3. Modificar Generos");
                    System.out.println("0. Salir");
                    int opc2 = ObtenerTeclado.dameEntero("Introduzca una opcion:");

                    switch (opc2) {
                        case 1:
                            GestionArticulo.mostrarGeneros();
                            break;
                        case 2:
                            genero1 = ObtenerTeclado.dameCadena("Introduzca el nombre del nuevo genero: ");
                            GestionArticulo.addGenero(genero1);
                            break;
                        case 3:
                            GestionArticulo.mostrarGeneros();
                            do {
                                genero1 = ObtenerTeclado.dameCadena("Introduzca el genero a modificar: ");
                            } while (GestionArticulo.comprobarGenero(genero1) != 1);
                            String genero2 = ObtenerTeclado.dameCadena("Introduzca el nuevo genero");
                            GestionArticulo.modificarGenero(genero1, genero2);
                            break;
                        default:
                            break;
                    }

                default:
                    break;

            }

        } while (i != 0);
    }

    public static void menuInformes() {
        int i = 1;
        //do {
        System.out.println("-------------------------------");
        System.out.println("           MENU INFORMES       ");
        do {
            System.out.println("-------------------------------");
            System.out.println("1. Informes de Ejemplares");
            System.out.println("2. Alquileres Pendientes");
            System.out.println("3. Mejores Clientes (Mas veces Alquilan)");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduce la opcion elegida: ");
            switch (i) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("       INFORME EJEMPLARES      ");
                    System.out.println("-------------------------------");
                    String opc="";
                    do {
                        System.out.println("Informes de Ejemplares:");
                        System.out.println("");
                        System.out.println("1. Lista Mas Veces Alquilados");
                        System.out.println("2. Lista No Alquilados Nunca");
                        System.out.println("0. Salir");
                        opc = ObtenerTeclado.dameCadena("Introduce la Opcion: ");
                    } while (!"1".equals(opc) && !"2".equals(opc) && !"3".equals(opc) && !"0".equals(opc));
//                    GestionInformes.informeEjemplares(Integer.parseInt(opc));
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println(" INFORME ALQUILERES PENDIENTES ");
                    System.out.println("-------------------------------");
           //         GestionInformes.alquileresPendientes();
                    break;
                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("    INFORME MEJORES CLIENTES   ");
                    System.out.println("-------------------------------");
              //      GestionInformes.mejoresClientes();
                    break;
                default:
                    break;
            }
        } while (i != 0);
    }

    public static void menuTarifa() {

        int i;
        int cod;
        int opc;
        String nom;
        String valor;


        do {
            System.out.println("-------------------------------");
            System.out.println("            MENU TARIFA        ");
            System.out.println("-------------------------------");
            System.out.println("1. Mostrar Tarifas existentes");
            System.out.println("2. Añadir Tarifa");
            System.out.println("3. Modificar Tarifa");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");

            switch (i) {

                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("         MOSTRAR TARIFAS      ");
                    System.out.println("-------------------------------");
                    GestionTarifa.mostrarTarifas();
                    break;

                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("          AÑADIR TARIFAS       ");
                    System.out.println("-------------------------------");
                    String desc = ObtenerTeclado.dameCadena("Introduzca la descripcion");
                    Float pA = ObtenerTeclado.dameFloat("Introduzca el precio de alquiler");
                    Float pV = ObtenerTeclado.dameFloat("Introduzca el precio de venta");
                    int dias = ObtenerTeclado.dameEntero("Introduzca los dias que permite de alquiler la tarifa");
                    GestionTarifa.addTarifa(desc, pA, pV, dias);
                    break;

                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("         MODIFICAR TARIFA      ");
                    System.out.println("-------------------------------");
                    //primero mostramos las tarifas existentes,despues debe introducir el id de la tarifa que desea modificar...
                    GestionTarifa.mostrarTarifas();
                    cod = ObtenerTeclado.dameEntero("Introduzca el codigo que desea modificar");
                    System.out.println("1. Descripcion");
                    System.out.println("2. Precio Alquiler");
                    System.out.println("3. Precio Venta");
                    System.out.println("4. Dias que permite de alquiler");
                    opc = ObtenerTeclado.dameEntero("Introduzca el numero del campo que desea modificar: ");

                    switch (opc) {

                        case 1:
                            nom = "descripcion";
                            valor = ObtenerTeclado.dameCadena("Introduzca la descripcion");
                            GestionTarifa.modificarTarifa(cod, nom, valor);
                            break;

                        case 2:
                            nom = "precioAlquiler";
                            valor = ObtenerTeclado.dameCadena("Introduzca el precio de alquiler");
                            GestionTarifa.modificarTarifa(cod, nom, valor);
                            break;

                        case 3:
                            nom = "precioVenta";
                            valor = ObtenerTeclado.dameCadena("Introduzca el precio de venta");
                            GestionTarifa.modificarTarifa(cod, nom, valor);
                            break;

                        case 4:
                            nom = "diasAlquiler";
                            valor = ObtenerTeclado.dameCadena("Introduzca los dias que permite de alquiler la tarifa");
                            GestionTarifa.modificarTarifa(cod, nom, valor);
                            break;

                        default:
                            break;
                    }
                    break;

                default:
                    break;

            }

        } while (i != 0);
    }

    public static void menuProveedor() {
        int i;
        do {
            System.out.println("-------------------------------");
            System.out.println("           MENU PROVEEDOR      ");
            System.out.println("-------------------------------");
            System.out.println("1. Alta proveedor");
            System.out.println("2. Baja de proveedor");
            System.out.println("3. Modificar proveedor");
            System.out.println("4. Mostrar proveedores");
            System.out.println("0. Salir");
            i = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");
            switch (i) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("           ALTA PROVEEDOR      ");
                    System.out.println("-------------------------------");
                    String nombre = ObtenerTeclado.dameCadena("Introduzca el nombre del proveedor");
                    GestionProveedor.altaProveedor(nombre);
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("           BAJA PROVEEDOR      ");
                    System.out.println("-------------------------------");
                    GestionProveedor.mostrarProveedores();
                    int id = ObtenerTeclado.dameEntero("Introduzca el id del proveedor a borrar");
                    System.out.println("¿Seguro que desea borrar el proveedor con la id " + id + " ?");
                    System.out.println("1. Si");
                    System.out.println("2. No");
                    System.out.println("Por defecto: proveedor no borrado");
                    int s = ObtenerTeclado.dameEntero("Introduzca opcion");
                    switch (s) {
                        case 1:
                            GestionProveedor.bajaProveedor(id);
                            break;
                        case 2:
                            System.out.println("Proveedor no borrado");
                            break;
                        default:
                            break;
                    }

                    break;
                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("        MODIFICAR PROVEEDOR    ");
                    System.out.println("-------------------------------");
                    GestionProveedor.mostrarProveedores();
                    id = ObtenerTeclado.dameEntero("Introduzca el id del proveedor a modificar");
                    nombre = ObtenerTeclado.dameCadena("Introduzca nuevo nombre del proveedor");
                    System.out.println("¿Seguro que desea cambiar el nombre del proveedor por " + nombre + "?");
                    System.out.println("1. Si");
                    System.out.println("2. No");
                    System.out.println("Por defecto: proveedor no modificado");
                    s = ObtenerTeclado.dameEntero("Introduzca opcion");
                    switch (s) {
                        case 1:
                            GestionProveedor.modificarProveedor(id, nombre);
                            break;
                        case 2:
                            System.out.println("Proveedor no modificado");
                            break;
                        default:
                            break;

                    }


                    break;
                case 4:
                    System.out.println("-------------------------------");
                    System.out.println("        MOSTRAR PROVEEDORES    ");
                    System.out.println("-------------------------------");
                    GestionProveedor.mostrarProveedores();
                    break;

                default:
                    break;
            }

        } while (i != 0);
    }

    public static void menuEmpleados() {
        int op;
        do {
            System.out.println("-------------------------------");
            System.out.println("           MENU EMPLEADOS      ");
            System.out.println("-------------------------------");
            System.out.println("1. Mostrar empleados");
            System.out.println("2. Añadir empleado");
            System.out.println("3. Eliminar empleado");
            System.out.println("4. Modificar empleado");
            System.out.println("0. Salir");
            op = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");
            switch (op) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("        MOSTRAR EMPLEADOS      ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarDependientes();
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("         AÑADIR EMPLEADOS      ");
                    System.out.println("-------------------------------");
                    String nombre = ObtenerTeclado.dameCadena("Introduzca el nombre");
                    String apellidos = ObtenerTeclado.dameCadena("Introduzca los apellidos");
                    String dni = ObtenerTeclado.dameCadena("Introduzca el dni");
                    String domicilio = ObtenerTeclado.dameCadena("Introduzca el domicilio");
                    String telefono = ObtenerTeclado.dameCadena("Introduzca el telefono");
                    String email = ObtenerTeclado.dameCadena("Introduzca el e-mail");
                    //Comprobar si existe el nombre de usuario en la BBDD
                    boolean comprobar = false;
                    String nomusuario;
                    do {
                        nomusuario = ObtenerTeclado.dameCadena("Introduzca el nombre de usuario para su login");
                        if (GestionEmpleado.verificarUsuario(nomusuario)) {
                            comprobar = true;
                        } else {
                            System.out.println("Nombre de usuario ya existe. Introduzca uno nuevo");
                        }
                    } while (!comprobar);
                    //Comprobar si el pin es correcto
                    comprobar = false;
                    int pin = 0;
                    do {
                        pin = ObtenerTeclado.dameEntero("Introduzca el pin");
                        int pin2 = ObtenerTeclado.dameEntero("Introduzca de nuevo el pin");
                        if (pin == pin2) {
                            comprobar = true;
                        }
                    } while (!comprobar);
                    GestionEmpleado.addDependiente(nombre, apellidos, dni, domicilio, telefono, email, nomusuario, pin);
                    break;
                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("           ELIMINAR EMPLEADO      ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarDependientes();
                    int cod = ObtenerTeclado.dameEntero("Introduzca el id del empleado a eliminar");
                    GestionEmpleado.eliminarEmpleado(cod);
                    break;
                case 4:
                    System.out.println("-------------------------------");
                    System.out.println("       MODIFICAR EMPLEADO      ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarDependientes();
                    cod = ObtenerTeclado.dameEntero("Introduzca el id del empleado a modificar");
                    int opcion;
                    do {
                        System.out.println("-------------------------------");
                        System.out.println("       MODIFICAR EMPLEADO      ");
                        System.out.println("-------------------------------");
                        System.out.println("1. Modificar nombre");
                        System.out.println("2. Modificar apellidos");
                        System.out.println("3. Modificar domicilio");
                        System.out.println("4. Modificar dni");
                        System.out.println("5. Modificar telefono");
                        System.out.println("6. Modificar e-mail");
                        System.out.println("7. Modificar Nombre de usuario para login");
                        System.out.println("8. Modificar pin");
                        System.out.println("0. Salir");
                        opcion = ObtenerTeclado.dameEntero("Introduzca la opcion deseada");
                        switch (opcion) {
                            case 1:
                                String valor = ObtenerTeclado.dameCadena("Introduzca el nuevo nombre");
                                GestionEmpleado.modificarEmpleado(cod, "nombre", valor);
                                break;
                            case 2:
                                valor = ObtenerTeclado.dameCadena("Introduzca los nuevos apellidos");
                                GestionEmpleado.modificarEmpleado(cod, "apellidos", valor);
                                break;
                            case 3:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo domicilio");
                                GestionEmpleado.modificarEmpleado(cod, "domicilio", valor);
                                break;
                            case 4:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo dni");
                                GestionEmpleado.modificarEmpleado(cod, "dni", valor);
                                break;
                            case 5:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo telefono");
                                GestionEmpleado.modificarEmpleado(cod, "telefono", valor);
                                break;
                            case 6:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo e-mail");
                                GestionEmpleado.modificarEmpleado(cod, "email", valor);
                                break;
                            case 7:
                                //Comprobar si existe el nombre de usuario en la BBDD
                                comprobar = false;
                                do {
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nombre de usuario para su login");
                                    if (GestionEmpleado.verificarUsuario(valor)) {
                                        comprobar = true;
                                    }
                                } while (!comprobar);
                                GestionEmpleado.modificarEmpleado(cod, "nombreusuario", valor);
                                break;
                            case 8:
                                comprobar = false;
                                do {
                                    valor = ObtenerTeclado.dameCadena("Introduzca el pin");
                                    String valor2 = ObtenerTeclado.dameCadena("Introduzca de nuevo el pin");
                                    if (valor.compareTo(valor2) == 0) {
                                        comprobar = true;
                                    }
                                } while (!comprobar);
                                GestionEmpleado.modificarEmpleado(cod, "pin", valor);
                                break;

                            default:
                                break;
                        }
                    } while (opcion != 0);
                    break;

                default:
                    break;
            }
        } while (op != 0);
    }

    public static void menuEncargado() {
        int op;
        do {
            System.out.println("-------------------------------");
            System.out.println("         MENU ENCARGADO        ");
            System.out.println("-------------------------------");
            System.out.println("1. Hacer encargado a un empleado");
            System.out.println("2. Dar de alta un nuevo encargado");
            System.out.println("3. Modificar datos de un encargado");
            System.out.println("4. Mostrar encargados");
            System.out.println("0. Salir");
            op = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");
            switch (op) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("         HACER ENCARGADO        ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarDependientes();
                    int cod = ObtenerTeclado.dameEntero("Introduzca la id del empleado elegido");
                    GestionEmpleado.modificarEmpleado(cod, "encargado", "1");
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("         ALTA ENCARGADO        ");
                    System.out.println("-------------------------------");
                    String nombre = ObtenerTeclado.dameCadena("Introduzca el nombre");
                    String apellidos = ObtenerTeclado.dameCadena("Introduzca los apellidos");
                    String dni = ObtenerTeclado.dameCadena("Introduzca el dni");
                    String domicilio = ObtenerTeclado.dameCadena("Introduzca el domicilio");
                    String telefono = ObtenerTeclado.dameCadena("Introduzca el telefono");
                    String email = ObtenerTeclado.dameCadena("Introduzca el e-mail");
                    //Comprobar si existe el nombre de usuario en la BBDD
                    boolean comprobar = false;
                    String nomusuario;
                    do {
                        nomusuario = ObtenerTeclado.dameCadena("Introduzca el nombre de usuario para su login");
                        if (GestionEmpleado.verificarUsuario(nomusuario)) {
                            comprobar = true;
                        } else {
                            System.out.println("Nombre de usuario ya existe. Introduzca uno nuevo");
                        }
                    } while (!comprobar);
                    //Comprobar si el pin es correcto
                    comprobar = false;
                    int pin = 0;
                    do {
                        pin = ObtenerTeclado.dameEntero("Introduzca el pin");
                        int pin2 = ObtenerTeclado.dameEntero("Introduzca de nuevo el pin");
                        if (pin == pin2) {
                            comprobar = true;
                        }
                    } while (!comprobar);
                    GestionEmpleado.addEncargado(nombre, apellidos, dni, domicilio, telefono, email, nomusuario, pin);
                    break;
                case 3:
                    System.out.println("-------------------------------");
                    System.out.println("         MODIFICAR ENCARGADO        ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarEncargados();
                    cod = ObtenerTeclado.dameEntero("Introduzca el id del empleado a modificar");
                    int opcion;
                    do {
                        System.out.println("1. Modificar nombre");
                        System.out.println("2. Modificar apellidos");
                        System.out.println("3. Modificar domicilio");
                        System.out.println("4. Modificar dni");
                        System.out.println("5. Modificar telefono");
                        System.out.println("6. Modificar e-mail");
                        System.out.println("7. Modificar Nombre de usuario para login");
                        System.out.println("8. Modificar pin");
                        System.out.println("0. Salir");
                        opcion = ObtenerTeclado.dameEntero("Introduzca la opcion deseada");
                        switch (opcion) {
                            case 1:
                                String valor = ObtenerTeclado.dameCadena("Introduzca el nuevo nombre");
                                GestionEmpleado.modificarEmpleado(cod, "nombre", valor);
                                break;
                            case 2:
                                valor = ObtenerTeclado.dameCadena("Introduzca los nuevos apellidos");
                                GestionEmpleado.modificarEmpleado(cod, "apellidos", valor);
                                break;
                            case 3:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo domicilio");
                                GestionEmpleado.modificarEmpleado(cod, "domicilio", valor);
                                break;
                            case 4:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo dni");
                                GestionEmpleado.modificarEmpleado(cod, "dni", valor);
                                break;
                            case 5:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo telefono");
                                GestionEmpleado.modificarEmpleado(cod, "telefono", valor);
                                break;
                            case 6:
                                valor = ObtenerTeclado.dameCadena("Introduzca el nuevo e-mail");
                                GestionEmpleado.modificarEmpleado(cod, "email", valor);
                                break;
                            case 7:
                                //Comprobar si existe el nombre de usuario en la BBDD
                                comprobar = false;
                                do {
                                    valor = ObtenerTeclado.dameCadena("Introduzca el nombre de usuario para su login");
                                    if (GestionEmpleado.verificarUsuario(valor)) {
                                        comprobar = true;
                                    }
                                } while (!comprobar);
                                GestionEmpleado.modificarEmpleado(cod, "nombreusuario", valor);
                                break;
                            case 8:
                                comprobar = false;
                                do {
                                    valor = ObtenerTeclado.dameCadena("Introduzca el pin");
                                    String valor2 = ObtenerTeclado.dameCadena("Introduzca de nuevo el pin");
                                    if (valor.compareTo(valor2) == 0) {
                                        comprobar = true;
                                    }
                                } while (!comprobar);
                                GestionEmpleado.modificarEmpleado(cod, "pin", valor);
                                break;

                            default:
                                break;
                        }
                    } while (opcion != 0);
                    break;
                case 4:
                    System.out.println("-------------------------------");
                    System.out.println("       MOSTRAR ENCARGADO        ");
                    System.out.println("-------------------------------");
                    GestionEmpleado.mostrarEncargados();
                    break;

                default:
                    break;
            }
        } while (op != 0);
    }

    public static void menuIncidencias(Empleado e) {

        int op;
        System.out.println("-------------------------------");
        System.out.println("         MENU INCIDENCIA        ");
        System.out.println("-------------------------------");
        System.out.println("1. Rellenar incidencia");
        System.out.println("2. Mostrar incidencias");
        System.out.println("0. Salir");
        op = ObtenerTeclado.dameEntero("Introduzca la opcion elegida");
        switch (op) {
            case 1:
                System.out.println("-------------------------------");
                System.out.println("       NUEVA INCIDENCIA        ");
                System.out.println("-------------------------------");
                String desc = ObtenerTeclado.dameCadena("Introduzca la descripcion de la incidencia");
                GestionEmpleado.addIncidencia(e, desc);
                break;
            case 2:
                System.out.println("-------------------------------");
                System.out.println("       MOSTRAR INCIDENCIAS     ");
                System.out.println("-------------------------------");
                GestionEmpleado.mostrarIncidencias();
                break;
        }
    }

    private static void menuSaldo(Cliente cliente) {

        int j = 1;
        float saldo;

        do {
            System.out.println("-------------------------------");
            System.out.println("           MENU SALDO          ");
            System.out.println("-------------------------------");
            System.out.println("1. Mostrar Saldo");
            System.out.println("2. Recargar Saldo");
            System.out.println("0. Salir");
            j = ObtenerTeclado.dameEntero("Introduzca una opcion");

            switch (j) {
                case 1:
                    System.out.println("-------------------------------");
                    System.out.println("         MOSTRAR SALDO        ");
                    System.out.println("-------------------------------");
                    GestionSaldo.mostrarSaldo(cliente);
                    break;
                case 2:
                    System.out.println("-------------------------------");
                    System.out.println("         RECARGAR SALDO        ");
                    System.out.println("-------------------------------");
                    saldo = ObtenerTeclado.dameFloat("Introduzca cantidad a recargar");
                    GestionMovimientos.addMovimiento(cliente, saldo, "Recarga de saldo");
                    GestionSaldo.recargarSaldo(saldo, cliente);
                    break;

                default:
                    break;

            }
        } while (j != 0);

    }
}
